package com.woniu.service;

import org.springframework.scheduling.annotation.Scheduled;

import java.util.List;

public interface EmaillServicec {
    /**
     * 1. 检查邮箱是否已订阅（核心去重逻辑）
     * @param email 待检查邮箱
     * @return true=已订阅，false=未订阅
     */
    public boolean isEmailSubscribed(String email);

    /**
     * 2. 新增订阅：将邮箱存入Redis（2个地方）
     * - Set：用于去重（后续检查是否已订阅）
     * - List：用于暂存新邮箱（待同步到数据库）
     */
    public void addNewSubscribeEmail(String email);




    /**
     * 3. 批量获取待同步的新邮箱（供定时任务使用）
     * @param count 一次获取多少条（避免一次性取太多，压垮数据库）
     * @return 待同步的邮箱列表
     */
    @Scheduled(cron = "0 0 2 * * ?") // 每天凌晨2点执行
    public List<String> getNewEmailsForSync(int count);


    /**
     * 4. 同步完成后，删除Redis中已同步的邮箱（避免重复同步）
     * @param count 已同步的数量
     */
    @Scheduled(cron = "0 0 3 * * ?") // 每天凌晨3点执行
    public void removeSyncedEmails(int count);

}
